package de.pyranja.money;

import java.math.BigDecimal;
import java.util.Currency;

import de.pyranja.money.core.MoneyBuilder;

/**
 * Factory for money instances. Implementations should allow to set required
 * dependencies like the backing calculator.
 * 
 * @author Chris Borckholder
 */
public interface MoneyFactory {
	
	/**
	 * Create money instance with specified amount and currency.
	 */
	Money create(BigDecimal amount, Currency currency);
	
	/**
	 * Create money instance with specified amount and default currency.
	 */
	Money create(BigDecimal amount);
	
	/**
	 * Start a fluid MoneyBuilder with specified amount.
	 */
	MoneyBuilder amount(BigDecimal val);
}